package com.mdb.open.trade.domain.bo.trade;


/*
 * Copyright (C), 2017-2019 澳发科技(MDB)
 * FileName: MerchantInfoService.java
 * Author:   符楚
 * Date:     2019-06-03
 * History:
 * <author>          <time>          <version>          <desc>
 * 符楚         2019-06-03          V1.00             代码生成器初始生成代码
 * -----------------------------------------------------------
 * 作者姓名           修改时间           版本号            描述
 */

import com.mdb.bc.api.data.DataObjectBase;
import com.mdb.bc.validator.annotaion.validation.IdentityNo;
import com.mdb.enums.CertTypeEnum;
import com.mdb.open.common.enums.trade.type.BusinessNatureTypeEnum;
import com.mdb.open.common.enums.trade.type.CreditTypeEnum;
import com.mdb.open.common.enums.trade.type.MerchantsTypeEnum;
import com.mdb.open.trade.feign.dto.cus.CustFileInfoDto;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import lombok.EqualsAndHashCode;
import lombok.experimental.Accessors;

import javax.validation.constraints.NotBlank;
import javax.validation.constraints.NotNull;

/**
 * 类描述：
 * 商户信息数据传输类
 *
 * @author 符楚
 * @date 2019-06-03
 */
@Data
@EqualsAndHashCode(callSuper = true)
@Accessors(chain = true)
@ApiModel(description = "商户信息Bo对象")
public class UpdateMerchantInfoBo extends DataObjectBase {

    private static final long serialVersionUID = 1L;

    /**
     * 证件类型
     */
    @ApiModelProperty(value = "证件类型")
    private CreditTypeEnum creditType;

    /**
     * 商户类型
     */
    @ApiModelProperty(value = "商户类型")
    @NotNull(message = "商户类型不允许为空")
    private MerchantsTypeEnum customerTypeEnum;

    /**
     * 商户英文名称
     */
    @NotBlank(message = "商户英文名称不允许为空")
    @ApiModelProperty(value = "商户英文名称")
    private String merchantNameEn;

    /**
     * 商户中文名称
     */
    @NotBlank(message = "商户中文名称不允许为空")
    @ApiModelProperty(value = "商户中文名称")
    private String merchantNameCn;

    /**
     * 营业执照(附件)
     */
    @ApiModelProperty(value = "营业执照(附件)")
    @NotNull(message = "营业执照(附件)不允许为空")
    private CustFileInfoDto bizLicenseFile;

    /**
     * 负责人名称(法人/经营者)
     */
    @ApiModelProperty(value = "负责人名称(法人/经营者)")
    @NotBlank(message = "负责人名称(法人/经营者)不允许为空")
    private String principalName;

    /**
     * 负责人证件类型
     */
    @ApiModelProperty(value = "负责人证件类型")
    @NotNull(message = "负责人证件类型不允许为空")
    private CertTypeEnum principalCertType;

    /**
     * 负责人证件号码(法人/经营者)
     */
    @ApiModelProperty(value = "负责人证件号码(法人/经营者)")
    @NotBlank(message = "负责人证件号码(法人/经营者)不允许为空")
    @IdentityNo(message = "负责人证件号码格式不正确")
    private String principalCertNumber;

    /**
     * 负责人证件正面(附件) - (法人/经营者)
     */
    @ApiModelProperty(value = "负责人证件正面(附件) - (法人/经营者)")
    @NotNull(message = "负责人证件正面(附件) - (法人/经营者)不允许为空")
    private CustFileInfoDto principalCertFrontFile;

    /**
     * 负责人证件反面(附件) - (法人/经营者)
     */
    @ApiModelProperty(value = "负责人证件反面(附件) - (法人/经营者)")
    @NotNull(message = "负责人证件反面(附件) - (法人/经营者)不允许为空")
    private CustFileInfoDto principalCertBackFile;


    @NotNull(message = "经营性质不能为空")
    @ApiModelProperty(value = "经营性质")
    private BusinessNatureTypeEnum businessNature;

    /**
     * 联系人
     */
    @ApiModelProperty(value = "联系人")
    @NotBlank(message = "联系人不允许为空")
    private String contactName;

    /**
     * 联系电话(区号)
     */
    @ApiModelProperty(value = "联系电话(区号)")
    @NotBlank(message = "联系电话(区号)不允许为空")
    private String contactPhoneCode;

    /**
     * 联系电话
     */
    @ApiModelProperty(value = "联系电话")
    @NotBlank(message = "联系电话不允许为空")
    private String contactPhoneNumber;

    /**
     * 联系邮箱
     */
    @ApiModelProperty(value = "联系邮箱")
    @NotBlank(message = "联系邮箱不允许为空")
    private String contactEmail;

    /**
     * 联系地址
     */
    @ApiModelProperty(value = "联系地址")
    @NotBlank(message = "联系地址不允许为空")
    private String contactAddress;


}
